#ifndef __BASE_OBJECT_H__
#define __BASE_OBJECT_H__

#include "../Predefine.h"
#include "Box2D.h"
#include "../Graphic/RenderVideo.h"

enum ObjectType
{
	NONE_OBJECT = 0,
	RECT_OBJECT,
	CIRCLE_OBJECT,
	POLYGON_OBJECT,
};

class CBaseObject
{
public:
	CBaseObject(b2World* world);
	~CBaseObject();

public:
	virtual void		Initialize();
	virtual void		Draw();
	virtual void		GenB2();
	virtual void		SetDensity(float density);
	virtual void		SetFriction(float friction);
	virtual void		SetRestitution(float restitution);
	virtual void		SetColor(video::SColor& color);
	enum ObjectType		GetType();

private:
	enum ObjectType		m_eType;
	
protected:	
	video::SColor		m_Color;
	float				m_fDensity;
	float				m_Friction;
	float				m_Restitution;

public:
	b2Body*				m_pB2Body;
	b2World*			m_pB2World;

};

#endif//__BASE_OBJECT_H__